package com.sike.controller;

import com.sike.entity.CartItem;
import com.sike.service.CartService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/api/cart")
public class CartController {
    private final CartService cartService;

    @Autowired
    public CartController(CartService cartService) {
        this.cartService = cartService;
    }

    // 添加药品到购物车
    @PostMapping("/add")
    public ResponseEntity<?> addToCart(@RequestBody CartItem cartItem) {
        cartService.addToCart(cartItem);
        return ResponseEntity.ok().build();
    }

    // 更新购物车中的药品数量
    @PostMapping("/update")
    public ResponseEntity<?> updateCartItemQuantity(@RequestBody CartItem cartItem) {
        cartService.updateCartItemQuantity(cartItem.getUserId(), cartItem.getDrugId(), cartItem.getQuantity());
        return ResponseEntity.ok().build();
    }

    // 从购物车中移除药品
    @DeleteMapping("/remove/{userId}/{drugId}")
    public ResponseEntity<?> removeCartItem(@PathVariable Integer userId, @PathVariable Integer drugId) {
        cartService.removeCartItem(userId, drugId);
        return ResponseEntity.ok().build();
    }


    // 获取用户的购物车所有项
    @GetMapping("/{userId}")
    public ResponseEntity<List<CartItem>> findAllCartItemsByUserId(@PathVariable Integer userId) {
        List<CartItem> cartItems = cartService.findAllCartItemsByUserId(userId);
        return ResponseEntity.ok(cartItems);
    }
    // 获取购物车全部项
    @GetMapping
    public ResponseEntity<List<CartItem>> findAllCartItems() {
        List<CartItem> cartItems = cartService.findAllCartItems();
        return ResponseEntity.ok(cartItems);
    }
    // 清空购物车
    @DeleteMapping("/clear/{userId}")
    public ResponseEntity<?> clearCartByUserId(@PathVariable Integer userId) {
        cartService.clearCartByUserId(userId);
        return ResponseEntity.ok().build();
    }

}